﻿// Open Source: MIT License (http://www.opensource.org/licenses/mit-license.php)
// Project: YoProgramo.NET (http://code.google.com/p/yoprogramo/)
// Autor: Fabian Figueredo (info@fabianfigueredo.com.ar)
// Blog: blog.yoprogramo.net

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using NHibernate.Validator;
using YoProgramo.Domain.Core.Interfaces;

namespace YoProgramo.Domain.Core.Entities
{
    public class Comment : EntityBase<long>, IComment, IEntityCommon, IHasAssignedId<long> {
        public virtual void SetAssignedIdTo(long assignedId)
        {
            throw new NotImplementedException();
        }

        public override int GetHashCode()
        {
            throw new NotImplementedException();
        }

        private IStory _forStory;
        public virtual IStory ForStory
        {
            get { return _forStory; }
            set { _forStory = value; }
        }


        private string _htmlbody;
        [NotNullNotEmpty(Message = "El Cuerpo del mensaje no puede ser nulo.")]
        public virtual string HtmlBody
        {
            get { return _htmlbody; }
            set { _htmlbody = value; }
        }

        private string _textbody;
        [NotNullNotEmpty(Message = "El Cuerpo del mensaje no puede ser nulo.")]
        public virtual string TextBody
        {
            get { return _textbody; }
            set { _textbody = value; }
        }

        private IUser _byuser;
        public virtual IUser ByUser
        {
            get { return _byuser; }
            set { _byuser = value; }
        }

        private string _fromipaddress;
        public virtual string FromIPAddress
        {
            get { return _fromipaddress; }
            set { _fromipaddress = value; }
        }

        public long Id {
            get { return base.Id; }
            set { base.Id = value; }
        }

        private DateTime _commentedAt;
        public DateTime CommentedAt {
            get {
                return _commentedAt;
            }
            set {
                _commentedAt = value;
            }
        }

        private bool _isbestcomment;
        public bool IsBestComment {
            get {
                return _isbestcomment;
            }
            set {
                _isbestcomment = value;
            }
        }

    }
}